Skip to content

Finish proxy support#822

Merged
gabriel-samfira merged 1 commit into
cloudbase:mainfrom
gabriel-samfira:finish-proxy-feature
Jul 9, 2026
Merged

Finish proxy support#822
gabriel-samfira merged 1 commit into
cloudbase:mainfrom
gabriel-samfira:finish-proxy-feature

Conversation

@gabriel-samfira

@gabriel-samfira gabriel-samfira commented Jul 9, 2026

Copy link
Copy Markdown
Member

Well, this turned out to be a massive change, but most of it is scaffolding needed to add a new DB entity. There are several layers of CRUD (db, runner package, API, CLI, webapp), types that need to get added and which generate client code, cache worker to hook up, etc.

The goal of this change is to add actual Proxy support to GARM at all levels:

  • GARM itself (when contacting the forge/IAAS)
  • runner instances - userdata (install script, package manager)
  • runner instances - the actual runner service

At each level, and for each forge...and for each OS the proxy settings have a different way of being set. Hopefully this change covers them all.

There is now a new proxy subcommand in the CLI and a dedicated Proxy section in the webapp:

ubuntu@garm:~/garm$ garm-cli proxy --help
Manage proxy definitions.

Proxy definitions hold the proxy settings that runners will use to reach
back to GARM, the forge and any other resources they need during setup.
They are useful when runners are spun up in environments without direct
outbound connectivity, such as air-gapped clouds.

Pools and scale sets may reference a proxy definition, in which case the
proxy settings will be injected into the runners they create.

Usage:
  garm-cli proxy [command]

Available Commands:
  create      Create a new proxy
  delete      Delete proxy
  list        List proxies
  show        Show proxy
  update      Update proxy

Flags:
  -h, --help   help for proxy

Global Flags:
      --debug           Enable debug on all API calls
      --format string   Output format (table, json) (default "table")

Use "garm-cli proxy [command] --help" for more information about a command.

Multiple proxies can be defined in GARM, with or without credentials. After defining a proxy, you may set it on a pool or scale set. You may define multiple proxies and set whichever proxy is appropriate for a particular network.

Fixes #438

Well, this turned out to be a massive change, but most of it is scaffolding
needed to add a new DB entity. There are several layers of CRUD (db, runner
package, API, CLI, webapp), types that need to get added and which generate
client code, cache worker to hook up, etc.

The goal of this change is to add actual Proxy support to GARM at all levels:

* GARM itself (when contacting the forge/IAAS)
* runner instances - userdata (install script, package manager)
* runner instances - the actual runner service

At each level, and for each forge...and for each OS the proxy settings have
a different way of being set. Hopefully this change covers them all.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
@gabriel-samfira gabriel-samfira merged commit e8b0848 into cloudbase:main Jul 9, 2026
5 checks passed
@gabriel-samfira gabriel-samfira deleted the finish-proxy-feature branch July 9, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Proxy Server

1 participant